<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Layui</title>
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <link rel="stylesheet" href="/layui/css/layui.css" media="all">
    <!-- 注意：如果你直接复制所有代码到本地，上述css路径需要改成你本地的 -->
</head>
<body>

<table class="layui-hide" id="test" lay-filter="test"></table>

<script type="text/html" id="toolbarDemo">
    <div class="layui-btn-container">
        <button class="layui-btn layui-btn-sm" lay-event="getCheckData">批量删除</button>
        <button class="layui-btn layui-btn-sm" lay-event="getCheckLength">获取选中数目</button>
        <button class="layui-btn layui-btn-sm" lay-event="isAll">验证是否全选</button>
        <button class="layui-btn layui-btn-sm" lay-event="excel">导出Excel</button>
    </div>
</script>

<script type="text/html" id="barDemo">
    <a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>
    <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
</script>

<script src="/layui/layui.js" charset="utf-8"></script>
<!-- 注意：如果你直接复制所有代码到本地，上述 JS 路径需要改成你本地的 -->

<!-- 引入jquery.js -->
<script src="https://ajax.aspnetcdn.com/ajax/jquery/jquery-3.5.1.min.js"></script>

<script>
    layui.use('table', function () {
        var table = layui.table;

        table.render({
            elem: '#test'
            , url: '/goodsClass/goodsClassFindByPage'
            , toolbar: '#toolbarDemo' //开启头部工具栏，并为其绑定左侧模板
            , defaultToolbar: ['filter', 'exports', 'print', { //自定义头部工具栏右侧图标。如无需自定义，去除该参数即可
                title: '提示'
                , layEvent: 'LAYTABLE_TIPS'
                , icon: 'layui-icon-tips'
            }]
            , title: '用户数据表'
            , page: { //支持传入 laypage 组件的所有参数（某些参数除外，如：jump/elem） - 详见文档
                limit: 2,
                limits: [1, 2, 3],
                layout: ['limit', 'count', 'prev', 'page', 'next', 'skip'] //自定义分页布局
                //,curr: 5 //设定初始在第 5 页
                , groups: 1 //只显示 1 个连续页码
                , first: false //不显示首页
                , last: false //不显示尾页
            }
            , cols: [[
                {type: 'checkbox', fixed: 'left'}
                , {field: 'classId', title: '编号', width: 180, fixed: 'left', unresize: true, sort: true}
                , {field: 'className', title: '分类名称', width: 180, edit: 'text', sort: true}
                , {fixed: 'right', title: '操作', toolbar: '#barDemo', width: 150}

            ]]
            //,page: true
        });

        //头工具栏事件
        table.on('toolbar(test)', function (obj) {
            var checkStatus = table.checkStatus(obj.config.id);
            switch (obj.event) {
                case 'getCheckData':
                    var data = checkStatus.data;
                    // layer.alert(JSON.stringify(data));

                    //---------批量删除操作-------------
                    var classIds = '';
                    // 遍历
                    for (var i = 0; i < data.length; i++) {
                        // 传输的数据拼接成键值对：&ids=1&ids=2
                        classIds += "&classIds=" + data[i].classId;
                        // alert(data[i].classId)
                    }
                    // alert("classId" + classIds);

                    // 使用Ajax传输数据到后台
                    $.ajax({
                        type: "GET",
                        url: "goodsClass/deleteAllGoodsClass",
                        data: classIds,
                        success: function (data) {
                            if ("success" == data) {
                                // window.location.href = "http://localhost:8085/index.html";
                                window.location.href = "http://localhost:8080/index.html";
                            }
                        }
                    });

                    //---------------------------------
                    break;
                case 'getCheckLength':
                    var data = checkStatus.data;
                    layer.msg('选中了：' + data.length + ' 个');
                    break;
                case 'isAll':
                    layer.msg(checkStatus.isAll ? '全选' : '未全选');
                    break;

                case 'excel':
                    var data = checkStatus.data;

                    var classIds = '';
                    // 遍历选择到的数据
                    for (var i = 0; i < data.length; i++) {
                        classIds += "&classIds=" + data[i].classId;
                    }
                    // alert(classIds)
                    // 使用Ajax将数据传输到后台
                    $.get("goodsClass/excelGoodsClass", classIds,
                        function (data) {
                            alert(data);
                        });
                    break;

                //自定义头工具栏右侧图标 - 提示
                case 'LAYTABLE_TIPS':
                    layer.alert('这是工具栏右侧自定义的一个图标按钮');
                    break;
            }
            ;
        });

        //监听行工具事件
        table.on('tool(test)', function (obj) {
            var data = obj.data;
            //console.log(obj)
            if (obj.event === 'del') {
                // alert(data);
                layer.confirm('真的删除行么',
                    function (index) {
                        obj.del();
                        layer.close(index);

                        var classId = "&classId=" + data.classId;
                        // alert(classId);
                        $.get("goodsClass/deleteGoodsClass", classId,
                            function (data) {
                                alert(data);
                            });
                    });

            } else if (obj.event === 'edit') {
                // layer.alert('编辑行：<br>' + JSON.stringify(data))
                // 正常情况下首先调用的是查询单个方法，
                // 并将查询的数据渲染到修改页面上
                queryOne(data);// 调用方法渲染数据
            }
        });
    });
</script>

<script type="text/html" id="img">
    <div><img src="{{d.userImage}}" width="40" height="40" alt="图片"></div>
</script>

<script>
    // 修改模块的方法
    function queryOne(data) {
        // 打开弹框
        layer.open({
                title: ['修改用户'],// 标题
                type: 1,// 含义未知
                content: $("#updateGoodsClass").html(), // 修改数据的页面
                area: ['600px', '600px'],// 弹框的大小
                btn: ['提交', '取消'],
                // 弹出后回调该函数
                success: function () {
                    $("#classId").val(data.classId);
                    $("#className").val(data.className);


                    // 渲染页面
                    // layui.form.render();// 不渲染页面，无法显示单选框数据
                },
                // 提交数据到后台
                yes: function () {
                    $.ajax({
                        type: "POST",
                        url: "goodsClass/updateGoodsClass",
                        data: $("#updateGoodsClassForm").serialize(),
                        success: function (msg) {
                            // alert(msg);
                            location.reload();//重新加载当前页面
                        }
                    });
                },
                // 取消
                btn2: function () {
                    alert("已取消")
                }
            }
        );
    }
</script>

<!-- 修改商品大分类方法的html页面 -->
<script type="text/html" id="updateGoodsClass">

    <form id="updateGoodsClassForm" class="layui-form">

        <!-- 页面不显示id，但是需要把id作为隐藏域传到后台  -->
        <input type="hidden" id="classId" name="classId">

        <div class="layui-form-item">
            <label class="layui-form-label">分类名称</label>
            <div class="layui-input-block">
                <input id="className" type="text" name="className" width="80" lay-verify="title" autocomplete="off"
                       class="layui-input">
            </div>
        </div>

    </form>

</script>

</body>
</html>